Linux

From operating-system fundamentals to kernel internals to embedded boards — the full Linux stack on one page.

Operating Systems Fundamentals

Concurrency primitives, synchronisation patterns, virtual memory, and the boot path — the building blocks every Linux engineer needs in working memory.

Concurrency & synchronisation

Mutex vs Spinlock vs Binary Semaphore
Semaphore
Circular wait
Live lock
Starvation
std::lock_guard
std::unique_lock
atomic variable
Conditional variable
Thread_local_storage
std::recursive_mutex
std::timed_mutex
std::shared_mutex
Lock ordering
Readers and Writers Problem
Dining philosopher problem
std::counting_semaphore
Reactor pattern
Priority inversion
std::future and std::promise

Memory, interrupts & boot

Virtual memory / paging
do_irq()
Softirq
Tasklet
workqueue
BIOS / UEFI
LILO / GRUB2

My kernel diagrams

Hand-drawn Linux kernel diagram, view 1
Linux kernel structure — subsystems and call paths.
Hand-drawn Linux kernel diagram, view 2
Process, memory, and I/O surfaces between user and kernel space.

CLI & Shell

Cheat sheets and environment setup for Windows / WSL — the everyday tools that bring a fresh box up to a working dev machine.

Cheat sheets

Install on Windows / WSL

Linux System Programming

The user-space side of the kernel ABI — processes, files, signals, IPC, threads, and sockets.

The Linux Programming Interface book cover

The Linux Programming Interface

Michael Kerrisk · the canonical reference for Linux system calls.

What it covers

Process creation and termination, file I/O and the VFS, signals, pipes and FIFOs, POSIX message queues, semaphores and shared memory, POSIX threads, and the socket API. If a Linux syscall has a man page, this book has a chapter on it.

Companion projects in the Resources section: thread pool, producer–consumer queue, and publisher–subscriber.

Linux Kernel Development

Subsystems, schedulers, drivers, and how to read — and contribute to — the kernel tree.

Books

How Linux Works, 3rd Edition

How Linux Works, 3rd Edition

Brian Ward

Linux Kernel Development by Robert Love

Linux Kernel Development

Robert Love

Embedded Linux

Linux guide & ecosystem

Resources

Reference guides, external lectures, and every GitHub project that backs the topics on this page — each link listed once.

GitHub projects